package com.hipac.qs.timer;

import java.util.Date;
import java.util.Timer;

/**
 * @author xiaogu
 * @date 2017/7/31 下午7:17
 * java.util.Timer 运行实例
 */
public class TimerExsample {

    /**
     * Timer 的 schedule方法测试
     */
    public static void scheduleMehtodTest() {
        Timer timer = new Timer();

        System.out.println("now time " + new Date());

        // 从现在开始 2 秒钟之后，每隔 2 秒钟执行一次 job2
        timer.schedule(new MyTimerTask("job2"), 2000, 2000);

        // 10秒后执行
        timer.schedule(new MyTimerTask("job3 10 second delay"), 10000L);

        // 某个时间执行
        timer.schedule(new MyTimerTask("job4 assign date"), new Date(new Date().getTime() + 5000L));

        // 20秒后执行 job5
        timer.schedule(new MyTimerTask("job5"), 20000L);
    }

    /**
     * Timer 的 schedule 与 scheduleAtFixedRate 方法比较
     */
    public static void compareSchedule() {
        Timer timer = new Timer();
        System.out.println("now time " + new Date());
        // schedule 3秒后开始 每2秒执行1次
        timer.schedule(new MyTimerTask("job6 schedule assign date"), new Date(new Date().getTime() + 3000L), 2000L);
        // scheduleAtFixedRate 3秒后开始 每2秒执行1次
        timer.scheduleAtFixedRate(new MyTimerTask("job7 schedule at fixed rate assign date"), new Date(new Date().getTime() + 3000L), 2000L);
    }

    public static void main(String[] args) {
//        scheduleMehtodTest();
        compareSchedule();
    }
}
